package com.aliwo.response;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * .
 *
 * @author Xu Yayuan
 * @date 2021/11/18
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ResultResponse {
    /**
     * 状态码 0 表示成功，1表示处理中，-1表示失败
     */
    private Integer code;
    /**
     * 数据
     */
    private Object data;
    /**
     * 描述
     */
    private String message;

    /**
     * 成功，不传入数据和message
     */
    public static ResultResponse buildSuccess() {
        return new ResultResponse(0, null, null);
    }

    /**
     * 成功，传入数据,没有message
     *
     * @param data
     */
    public static ResultResponse buildSuccess(Object data) {
        return new ResultResponse(0, data, null);
    }

    /**
     * 成功，传入数据和message
     *
     * @param data
     */
    public static ResultResponse buildSuccess(Object data, String message) {
        return new ResultResponse(0, data, message);
    }

    /**
     * 失败，传入描述信息
     *
     * @param message
     */
    public static ResultResponse buildError(String message) {
        return new ResultResponse(-1, null, message);
    }

    /**
     * 失败，传入错误码和描述信息
     *
     * @param message
     */
    public static ResultResponse buildError(Integer code, String message) {
        return new ResultResponse(code, null, message);
    }

    /**
     * 自定义状态码和错误信息
     *
     * @param code
     * @param message
     */
    public static ResultResponse buildCodeAndMsg(int code, String message) {
        return new ResultResponse(code, null, message);
    }
}
